Directory server for automatic network information access systems

ABSTRACT

Systems, apparatus and methods are described for providing information access to network devices. A directory server registers identification information about a first network device coupled to a first network. The first network and the directory server may be coupled to a second network, which may include a wide area network, public network, or the Internet. The identification information may include a network address of the first network device on the first network, or a network address of the first network on the second network. The directory server may receive and process requests for identification information about registered network devices, and may selectively reply to the requests based on status information of the first network device.

REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.10/808,743, filed 24 Mar. 2004, now U.S. Pat. No. ______, the entiretyof which is incorporated herein by this reference thereto.

BACKGROUND

In recent years, communications and computer equipment such ascomputers, personal digital assistants, pagers, cellular telephones,handheld messaging devices, facsimile machines, copiers and printers(collectively referred to herein as computer devices) have becomeincreasingly affordable and abundant. As computer devices have becomeincreasingly prevalent, technologies for connecting computer devices toother computer devices have also become more pervasive. For example, itis common today for office computers to be connected together innetworks with other computers, printers, copiers, facsimile machines,data storage devices, Internet web servers, and other computer devices.

The trend toward increasingly interconnected networks of computerdevices is expected to increase in size and scope. For example, morebusinesses and households are implementing wired and wireless computernetworks for connecting multiple computers, printers, handheld messagingdevices and other computer devices into computer networks. In addition,common household devices, such as refrigerators, laundry appliances,heaters, air conditioners, lighting systems, and home entertainmentsystems are being developed that include computer networking technologyto add features and expanded control over such devices.

Computer networking offers numerous advantages to users and systemadministrators. For example, users may easily communicate with oneanother, exchange data, and share computer resources, such as Internetaccess, data storage devices and printers. System administrators benefitby being able to more efficiently utilize computer resources, and bybeing able to have greater access to and control over computer devicescoupled to the network.

When a user of a computer device on a computer network wishes tocommunicate with another computer device on the network, the usertypically must consult a list containing information about availabledevices. For example, if a user of a networked office computer wants tosend a print job to a networked printer, the user typically must firstbrowse a directory containing a list of available printers, select oneof the printers by name, network address, or other form of networkidentification, install a printer driver for the selected printer on theuser's computer, and then issue a print command to the selected printer.The information in the list of available devices is typically compiledby a network administrator, who often must manually maintain the list,and frequently may organize the computer devices into one or more groupsdepending on user demand and availability of resources. For example, asprinters are added to and removed from a network, or to and from groupswithin the network, the network administrator typically must manuallyupdate the information in the printer list.

Such manual techniques for managing access to information aboutnetworked computer devices has become increasingly complex andburdensome as network devices have become more highly mobile, andwireless networking has become more abundant. For example, an Internetcafé or airport lounge may provide a WiFi hotspot for wireless networkaccess by mobile computer devices, such as laptop computers that includea wireless network adapter. As the number of computer devices connectedto a wireless network may continually change, the network administratormust continually monitor and revise lists of information about connecteddevices. Such continuous monitoring and modification consumessubstantial time and resources.

To address problems associated with such manual techniques, somepreviously known techniques seek to provide automatic networkconfiguration. For example, Rendezvous™ by Apple Computer, Inc.,Cupertino, Calif., U.S.A., is a networking technology based on zeroconfiguration network technology that automatically connects electronicdevices on a network. In particular, Rendezvous allows devices on asecure network to communicate with one another and automatically findand configure resources. This technique, however, has severallimitations. First, Rendezvous requires that devices continuallycommunicate their availability, which consumes network bandwidth andmakes the technique sensitive to network status. Second, Rendezvous onlyfunctions on a local network, and cannot be used to configure resourcesacross wide area or public networks.

Indeed, as the number of computer networks has increased, the advantagesof permitting communications between computer devices on differentnetworks has also increased. For example, a first company may includeits computers, printers and other networked computer devices on a firstcomputer network. The first company may seek the services of a secondcompany that may include its computers, printers and other networkedcomputer devices on a second computer network. If the first and secondnetworks each are connected to a public network, such as the Internet,computer devices of the first and second network potentially maycommunicate with one another via the Internet.

Although such internetwork communication may be desirable, currentlyavailable methods for managing access to information aboutinternetworked computer devices have numerous disadvantages. Inparticular, existing methods for providing access to information aboutcomputer devices on disparate networks are not generalized acrossplatforms or networks, and often require homogeneous network and clientenvironments to properly function. Thus, in the previous example, if thefirst network uses the transmission control protocol/Internet protocol(“TCP/IP”) communications protocol, and the second network uses theAppleTalk communications protocol, providing users with access toinformation about computer devices on both networks may be extremelydifficult. In addition, for security purposes, most computer networksare designed as closed environments that limit access from computerdevices outside the network. Thus, existing techniques for providingnetwork information to devices outside the network typically requireopening the network for public access, thereby compromising networksecurity.

One such previously known technique is used in PrinterOn™ technology, byPrinterOn Corporation, Kitchener, Ontario, Canada. PrinterOn providesnetwork-based printing solutions for printing over the Internet, butrequires that a print network administrator manually configure a list ofavailable printers in a directory on a public server. Unfortunately,however, PrinterOn has several disadvantages. First, the technology doesnot automatically map network users to printers on the same network, butinstead requires use of a manual search engine to discover availableprinters. If the print network administrator modifies the print networkbut fails to update the directory on the public server, however, thesearch results may provide false results. Second, PrinterOn requiresallowing external connections into the local network, which potentiallycompromises network security. Thus, PrinterOn does nothing to simplifynetwork device discovery, and provides print services at the expense ofnetwork security.

In view of the foregoing, it would be desirable to provide systems,methods and apparatus for automatically providing information regardingnetwork computer devices.

It further would be desirable to provide systems, methods and apparatusfor providing information regarding network computer devices on anetwork without requiring intervention by a network administrator.

It additionally would be desirable to provide systems, methods andapparatus for providing information regarding network computer deviceson a network without degrading network performance.

It also would be desirable to provide systems, methods and apparatus forproviding information regarding network computer devices on multiplenetworks without compromising network security.

It moreover would be desirable to provide systems, methods and apparatusfor providing information regarding network computer devices on multiplenon-homogeneous networks.

SUMMARY

In view of the foregoing, it is an object of this invention to providesystems, methods and apparatus for automatically providing informationregarding network computer devices.

It further is an object of this invention to provide systems, methodsand apparatus for providing information regarding network computerdevices on a network without requiring intervention by a networkadministrator.

It additionally is an object of this invention to provide systems,methods and apparatus for providing information regarding networkcomputer devices on a network without degrading network performance.

It also is an object of this invention to provide systems, methods andapparatus for providing information regarding network computer deviceson multiple networks without compromising network security.

It moreover is an object of this invention to provide systems, methodsand apparatus for providing information regarding network computerdevices on multiple non-homogeneous networks.

These and other objects of this invention are accomplished by providingsystems, apparatus and methods for providing information access tonetwork devices. A directory server is provided for registeringidentification information about a network device coupled to a firstnetwork. The network device may be one of a computer, personal digitalassistant, pager, cellular telephone, handheld messaging device,facsimile machine, copier, printer, telephone, security camera,household appliance, vending machine, kiosk, digital camera or similardevice. The first network may be a local area network, wide areanetwork, private network of similar network. The first network and thedirectory server may be coupled to a second network, which may include awide area network, public network, or the Internet. The identificationinformation may include a network address of the first network device onthe first network, or a network address of the first network on thesecond network. The directory server may receive and process requestsfor identification information about registered network devices. Forexample, the first network device may request identification informationabout a second network device coupled to the first network. Thedirectory server may selectively reply to the requests based on statusinformation of the first or second network devices.

The directory server also may register first identification informationabout a first network device coupled to a first network and secondidentification information about a second network device coupled to athird network. The first and second network devices each may be one of acomputer, personal digital assistant, pager, cellular telephone,handheld messaging device, facsimile machine, copier, printer,telephone, security camera, household appliance, vending machine, kiosk,digital camera or similar device. The first and third networks each maybe a local area network, wide area network, private network of similarnetwork. The first and third networks and the directory server may becoupled to a second network, which may include a wide area network,public network, or the Internet. The first identification informationmay include a network address of the first network device on the firstnetwork, or a network address of the first network on the secondnetwork. The second identification information may include a networkaddress of the second network device on the third network, or a networkaddress of the third network on the second network. The directory servermay receive and process requests for identification information aboutregistered network devices. For example, the first network device mayrequest identification information about the second network device. Thedirectory server may selectively reply to the requests based on statusinformation of the first or second network devices.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-mentioned objects and features of the present invention can bemore clearly understood from the following detailed descriptionconsidered in conjunction with the following drawings, in which the samereference numerals denote the same elements throughout, and in which:

FIG. 1 is a block diagram of an exemplary system in accordance with thisinvention;

FIG. 2 is a block diagram of an exemplary directory server in accordancewith this invention;

FIG. 3. is a block diagram of an exemplary network device in accordancewith this invention;

FIG. 4A is an exemplary directory table in accordance with thisinvention;

FIG. 4B is an alternative exemplary directory table in accordance withthis invention;

FIG. 5 is an exemplary cross-map table in accordance with thisinvention;

FIG. 6 is another alternative exemplary directory table in accordancewith this invention;

FIG. 7 is a block diagram of an alternative exemplary system inaccordance with this invention;

FIG. 8 is an alternative exemplary cross-map table in accordance withthis invention;

FIG. 9 is another alternative exemplary directory table in accordancewith this invention;

FIG. 10 is a block diagram of another alternative exemplary system inaccordance with this invention;

FIG. 11 is another alternative exemplary directory table in accordancewith this invention;

FIG. 12 is a block diagram of another alternative exemplary system inaccordance with this invention; and

FIG. 13 is another alternative exemplary directory table in accordancewith this invention.

DETAILED DESCRIPTION

Referring to FIG. 1, an exemplary system in accordance with thisinvention is described. Exemplary system 10 a includes client 12 coupledto first network 14, and directory server 20 coupled to third network24. Client 12 may be a personal computer, desktop computer, laptopcomputer, handheld computer, personal digital assistant, cellulartelephone, workstation, other similar device, or combination of suchdevices. Client 12 may have a name or other identifying informationassigned for identification purposes. For example, client 12 may benamed “Bill.” Directory server 20 may be a personal computer, desktopcomputer, laptop computer, handheld computer, personal digitalassistant, workstation, or other similar computer.

Printer 30 and network appliance 32 may also be coupled to first network14. Printer 30 may be an inkjet printer, laser printer, wide formatprinter, dot matrix printer, facsimile machine, copy machine, or othersimilar print device. Printer 30 may have a name or other identifyinginformation assigned for identification purposes. For example, printer30 may be named “Snoopy.” Network appliance 32 may be an InternetProtocol (“IP”) telephone, security camera, pager, household appliance,vending machine, kiosk, digital camera, or other similar device thatincludes a network connection for coupling the device to a computernetwork. Network appliance 32 may have a name or other identifyinginformation assigned for identification purposes. For example, networkappliance 32 may be an IP telephone named “A1's phone.”

Client 12, printer 30, IP telephone 32 and directory server 20 arecollectively referred to herein as network devices. Client 12, printer30, IP Phone 32 and directory server 20, may be located together, or maybe located separately. For example, client 12 may be located in theUnited States, IP Phone 32 may be located in Brazil, printer 30 may belocated in Germany and directory server 16 may be located in France.Client 12, printer 30, IP telephone 32 and directory server 20 may becommonly owned, or may be owned by different persons or entities. Forexample, client 12 and printer 30 may be owned by a first company, IPtelephone 32 may be owned by an individual, and directory server 20 maybe owned by a second company. Directory server 20 may be located at apublic co-location facility, or at a private facility.

First network 14 may be any conventional computer network, such as alocal area network, wide area network, wireless network, cellularnetwork, satellite network or similar computer network. As used herein,a wide area network includes multiple distinct networks that areconnected via a public network. Third network 24 may be any conventionalcomputer network, such as a local area network, wide area network,wireless network, cellular network, satellite network or similarcomputer network. First network 14 and third network 24 may be separatenetworks, or may be the same network. First network 14 and third network24 each may include multiple interconnected networks as is known in theart. First network 14 and third network 24 may be commonly operated, ormay be separately operated. For example, first network 14 may beoperated by a first network administrator or group of administrators andthird network 24 may be operated by a second network administrator orgroup of administrators.

First network 14 and third network 24 each may be coupled to secondnetwork 22, which may be a wide area network, global network, theInternet, or similar network. Second network 22 may be a public or aprivate network, and may include multiple interconnected networks as isknown in the art. First network 14 may be coupled to second network 22via route 26, and third network 24 may be coupled to second network 22via route 28. Router 26 may implement a first firewall that controlsaccess to first network 14, and client 12, printer 30 and IP Phone 32may be located within the first firewall. Directory server 20 may belocated outside the first firewall.

Client 12, printer 30, and IP telephone 32 communicate over firstnetwork 14 and directory server 20 communicates over third network 24 inaccordance with any conventional network communications protocol, suchas TCP/IP, AppleTalk, IPX, or other similar network communicationsprotocol that uses a network addressing scheme (e.g., IP addressing) touniquely identify source and destination addresses of network devicesand services. First network 14 and third network 24 may use the samenetwork communications protocol, or may use different networkcommunications protocols. For example, first network 14 may be anAppleTalk network, and third network 24 may be a TCP/IP network.

Client 12, printer 30, IP telephone 32 and route 26 each may have an“internal” IP address that uniquely identifies the devices on firstnetwork 14. For example, client 12, printer 30, IP telephone 32 androute 26 may have the following internal IP addresses on first network14:

Network Device Internal IP Address Client 12 192.168.1.100 Printer 30192.168.1.101 IP Phone 32 192.168.1.102 Router 26 192.168.1.1

Similarly, directory server 20 and route 28 each may have an internal IPaddress that uniquely identifies the devices on third network 24. Forexample, directory server and route 28 may have the following internalIP addresses on third network 24:

Network Device Internal IP Address Directory Server 22 192.168.1.100Router 28 192.168.1.1

In addition, routers 26 and 28 each may have a “public” IP address onsecond network 22. For example, routers 26 and 28 may be assigned thefollowing public IP addresses on second network 22:

Network Device Public IP Address Router 26 67.113.234.12 Router 2887.102.27.2

Client 12, printer 30 and IP telephone 32 may communicate with oneanother on first network 14 via network messages that include a sourceaddress and a destination address. For example, client 12 may send amessage to printer 30 that includes the client's internal IP address asthe source address, and the printer's internal IP address as thedestination address. Network devices on first network 14 may alsocommunicate with network devices that are outside first network 14 usingweb-style messages via route 26. When sending a message from a networkdevice within first network 14 to a network device outside first network14, route 26 may change the source address of the message to a public IPaddresses assigned to the router. In this regard, route 26 maps theinternal IP address on first network 14 to a public IP address on secondnetwork 22. If the recipient network device outside first network 14sends a reply to that public IP address, route 26 may change thedestination address of the received message to the internal IP addressmapped to that public IP address, and then forward the message on to theappropriate network device on first network 14.

Directory server 20 is capable of registering and controlling access toinformation about network devices coupled to first network 14, and ofreceiving and processing requests for information about registerednetwork devices. Referring now to FIG. 2, an exemplary directory server20 in accordance with this invention is described. Directory server 20includes central processing unit (“CPU”) 34, memory 36, transmitter 38,receiver 40 and message processor 42. CPU 34 may be any conventionalprocessor, such as a computer, microprocessor, application specificintegrated circuit or other similar processor. Memory 36 may be anyconventional memory, such as random access memory (“RAM”), floppy disk,hard disk, magnetic disk, optical disk or other similar read/writememory. Transmitter 38 and receiver 40 may be any conventionaltransmitter and receiver software and/or hardware for sending andreceiving data packets over a communications network. Message processor42 may be hardware, software or a combination of hardware and softwarethat receives and processes messages from network devices, as describedin more detail below. CPU 34, memory 36, transmitter 38, receiver 40 andmessage processor 42 may be included in a single device, or may bedistributed amongst multiple devices.

Network devices in accordance with this invention, such as client 12,printer 30 and IP phone 32, are capable of sending registrationinformation and requests for information about registered networkdevices to directory server 20. Referring now to FIG. 3, an exemplarynetwork device in accordance with this invention is described. Networkdevice 12 includes CPU 44, memory 46, transmitter 48, receiver 50 andregistration/query processor 52. CPU 44 may be any conventionalprocessor, such as a computer, microprocessor, application specificintegrated circuit or other similar processor. Memory 46 may be anyconventional memory, such as RAM, floppy disk, hard disk, magnetic disk,optical disk or other similar read/write memory. Transmitter 48 andreceiver 50 may be any conventional transmitter and receiver softwareand/or hardware for sending and receiving data packets over acommunications network. Registration/query processor 52 be hardware,software or a combination of hardware and software that transmits andreceives identification and query messages to and from directory server20, as described in more detail below. CPU 44, memory 46, transmitter48, receiver 50 and registration/query processor 52 may be included in asingle device, or may be distributed amongst multiple devices.

Referring again to FIGS. 1-3, network devices coupled to first network14 may register with directory server 20 on third network 24 bycommunicating identifying information to the directory server. Inparticular, network devices connected to first network 14 may sendidentification messages to directory server 20. Specifically, theregistration/query processor 52 of the network device formulates anidentification message that includes the source address and device typeof the network device, and may also include other identifyinginformation regarding the device, such as internal address, emailaddress, telephone number, device name or other information.

For example, registration/query processor 52 of printer 30 may send anidentification message to directory server 20 via route 26 and secondnetwork 22. Prior to sending the identification message, route 26 maychange the source address of the message to the public IP addressesassigned to the router (e.g., 67.113.234.12). Thus, the identificationmessage may include the printer's source address (67.113.234.12), devicetype (e.g., printer), and device name (e.g., “Snoopy”). Directory server20 receives the identification message, and message processor 42 parsesthe message to extract the source address and other identifyinginformation regarding the sending device. Message processor 42 thenregisters printer 30 by saving the identifying information in adirectory table in memory 36.

Referring now to FIG. 4A, an exemplary directory table for use withsystems in accordance with this invention is described. Directory table54 a includes one or more entries, with each entry including identifyinginformation regarding a registered network device. Exemplary directorytable 54 a includes the following identification information: sourceaddress, device type and device name. For example, directory table 54 aindicates that printer “Snoopy” has a source address 67.113.234.12;client “Hillary” has a source address 82.24.117.8; client “Joe” has asource address 117.33.2.45; printer “Linus” has a source address117.33.2.45; printer “Lucy′ has a source address 117.33.2.45; client“Bill” has a source address 67.113.234.12; and IP Phone “A1's Phone” hasa source address 67.113.234.12. Persons of ordinary skill in the artwill understand that alternate or additional identifying informationabout each network device may be included in directory table 54 a. Forexample, directory table 54 a may include an email address, telephonenumber, user name or other identifying information in place of or inaddition to the device name.

Referring again to FIGS. 1-4A, network devices on first network 14 mayalso request information from directory server 20 regarding registerednetwork devices. For example, registration/query processor 52 of client12 may send a query message to directory server 20. The query messageincludes the source address of the network device, and also includes aquery regarding registered network devices coupled to first network 14.Receiver 40 of directory server 20 receives the query message, andmessage processor 42 then parses the message to extract the sourceaddress and the query from the message. Message processor 42 thenprocesses the query to retrieve the requested information from directorytable 54 a, and transmitter 38 then sends a reply message to client 12with the retrieved information.

For example, client 12 (“Bill”) may send a query message to directoryserver 20 that includes the client's source address (e.g.,67.113.234.12) and a query (e.g., “What printers are on my network?”).Message processor 42 parses the query message to extract the sourceaddress and the query, and then processes the query to retrieve therequested information from directory table 54 a. In particular, messageprocessor 42 searches directory table 54 a to identify any registeredprinters having a source address that matches the source address ofclient 12. For example, message processor 42 determines that printer“Snoopy” has a matching source address. Message processor 42 thenformulates a reply message that includes the identified printer name,and transmitter 38 transmits the reply message to client 12.Registration/query processor 52 of client 12 receives the reply message,and provides the retrieved information to a user of the client device(e.g., via an audio, video or audio/video user interface). The user maythen use the retrieved information to communicate with the printer usingthe printer's device name.

Similarly, client 12 (“Bill”) may send a query message to directoryserver 20 that includes the client's source address and a query (e.g.,“What IP telephones are on my network?”). Message processor 42 parsesthe query message to extract the source address and the query, and thenprocesses the query to retrieve the requested information from directorytable 54 a. In particular, message processor 42 searches directory table54 a to identify any registered IP telephones having a source addressthat matches the source address of client 12. For example, messageprocessor 42 determines that IP telephone “A1's Phone” has a matchingsource address. Message processor 42 then formulates a reply messagethat- includes the identified telephone name, and transmitter 38transmits the reply message to client 12. The user of client 12 may thenuse the retrieved information to communicate with the IP Phone using thetelephone's device name.

Network devices in accordance with this invention may sendidentification messages that also include internal network addressinformation. For example, registration/query processor 52 of printer 30may send to directory server 20 an identification message that includesthe printer's public IP address, internal IP address, device type, anddevice name. Directory server 20 receives the identification message,and message processor 42 parses the message to extract the address andother identifying information regarding the sending device. Messageprocessor 42 then registers printer 30 by saving the identifyinginformation in a directory table in memory 36.

Referring now to FIG. 4B, an alternative exemplary directory table foruse with systems in accordance with this invention is described.Directory table 54 b is similar to directory table 54 a, but alsoincludes an internal address of each device. For example, directorytable 54 b indicates that printer “Snoopy” has a source address67.113.234.12 and an internal address 192.168.1.101; client “Hillary”has a source address 82.24.117.8, but has no internal address10.10.99.32; client “Joe” has a source address 117.33.2.45 and has aninternal address 208.210.1.47; printer “Linus” has a source address117.33.2.45 and has an internal address 208.210.1.5; printer “Lucy' hasa source address 117.33.2.45 and has an internal address 208.210.1.69;client “Bill” has a source address 67.113.234.12 and has an internalAddress 192.168.1.100; and IP Phone “A1's Phone” has a source address67.113.234.12 and has an internal address 192.168.1.102.

Directory table 54 b may be used to provide more specific information tonetwork devices coupled to directory server 20. Referring again to FIGS.1-3 and 4B, a network device connected to first network 14 may senddirectory server 20 a query message that includes the source address andinternal address of the network device, and also includes a queryregarding registered network devices coupled to first network 14.Receiver 40 of directory server 20 receives the query message, andmessage processor 42 then parses the message to extract the sourceaddress, internal address and the query from the message. Messageprocessor 42 then processes the query to retrieve the requestedinformation from directory table 54 b, and transmitter 38 then sends areply message to the network device with the retrieved information.

For example, client 12 (“Bill”) may send a query message to directoryserver 20 that includes the client's source address (e.g.,67.113.234.12), internal address (e.g., 192.168.1.100) and a query(e.g., “What printers are on my network?”). Message processor 42 parsesthe query message to extract the source address, internal address andthe query, and then processes the query to retrieve the requestedinformation from directory table 54 b. In particular, message processor42 searches directory table 54 b to identify any registered printershaving a source address that matches the source address of client 12.For example, message processor 42 determines that printer “Snoopy” has amatching source address. Message processor 42 then formulates a replymessage that includes the identified printer name and correspondinginternal address, and transmitter 38 transmits the reply message toclient 12. The user may then use the retrieved information tocommunicate with the printer using the printer's name and/or internaladdress.

Similarly, client 12 (“Bill”) may send a query message to directoryserver 20 that includes the client's source address (e.g.,67.113.234.12), internal address (e.g., 192.168.1.100) and a query(e.g., “What IP telephones are on my network?”). Message processor 42parses the query message to extract the source address, internal addressand the query, and then processes the query to retrieve the requestedinformation from directory table 54 b. In particular, message processor42 searches directory table 54 b to identify any registered IPtelephones having a source address that matches the source address ofclient 12. For example, message processor 42 determines that IPtelephone “A1's Phone” has a matching source address. Message processor42 then formulates a reply message that includes the identifiedtelephone name and corresponding internal address, and transmitter 38transmits the reply message to client 12. The user of client 12 may thenuse the retrieved information to communicate with the IP Phone using thetelephone's name and/or internal address.

In the previous examples, route 26 has a single public IP address onsecond network 22. In an alternative exemplary embodiments in accordancewith this invention, route 26 may be assigned multiple public IPaddresses on second network 22. For example, route 26 may be assignedthe following five public IP addresses on second network 22:

Network Device Public IP Address Router 26 67.113.234.12 Router 2667.113.234.13 Router 26 67.113.234.14 Router 26 67.113.234.15 Router 2667.113.234.16In this regard, route 26 is not limited to using a single public IPaddress, but instead may use any of its available public IP addressesfor routing messages from network devices on first network 14 oversecond network 22. Thus, when a network device on first network 14 sendsa message to a network device outside first network 14, route 26 maychange the source address of the message to any one of the public IPaddresses assigned to the router (e.g., the next available public IPaddress).

In such instances where multiple public addresses are used forcommunications from a single network, an administrator of directoryserver 20 may cross-map the various public addresses to indicate thatmultiple addresses constitute a single network for purposes of queryprocessing. For example, the administrator may create a table in memory36 that cross-maps source addresses. An exemplary cross-map table isillustrated in FIG. 5. Cross-map table 56 a includes a list of sourceaddresses and corresponding “equivalent” source addresses. Thus, sourceaddress 67.113.234.12 has equivalent source addresses 67.113.234.13,67.113.234.14, 67.113.234.15 and 67.113.234.16, and source address117.33.2.45 has equivalent source addresses 208.210.1.47 and17.1.100.65.

Referring now to FIG. 6, another alternative exemplary directory tablefor use with systems in accordance with this invention is described.Directory table 54 c includes identifying information regarding networkdevices coupled to networks that may use multiple public IP addressesfor communications outside the network. Directory table 54 c includesthe source address, internal address, device type and device name. Thus,printer “Snoopy” has a source address 67.113.234.12 and an internaladdress 192.168.1.101; client “Hillary” has a source address82.24.117.8, but has no internal address; client “Joe” has a sourceaddress 117.33.2.45 and has an internal address 208.210.1.47; printer“Linus” has a source address 4.3.116.57 and has an internal address208.210.1.5; printer “Lucy” has a source address 17.1.100.65 and has aninternal address 208.210.1.69; client “Bill” has a source address67.113.234.13 and has an internal address 192.168.1.100; and IP Phone“A1's Phone” has a source address 67.113.234.14 and has an internaladdress 192.168.1.102.

If cross-map table 56 a is used in conjunction with directory table 54c, message processor 42 may be used to process query messages regardingnetwork devices listed in directory table 54 c. For example, client 12(“Bill”) may send a query message to directory server 20 that includesthe client's source address (e.g., 67.113.234.13), internal address(e.g., 192.168.1.100) and a query (e.g., “What printers are on mynetwork?”). Message processor 42 parses the query message to extract thesource address, internal address and the query, and then processes thequery to retrieve the requested information from directory table 54 c.In particular, message processor 42 searches directory table 54 c toidentify any registered printers having a source address or equivalentsource address that matches the source address of client 12. In thisexample, message processor 42 determines that printer “Snoopy” has asource address (67.113.234.12) that is an equivalent source address tothe source address of client 12. Message processor 42 then formulates areply message that includes the printer name and corresponding internaladdress, and transmitter 38 transmits the reply message to client 12.

Similarly, client 12 (“Bill”) may send a query message to directoryserver 20 that includes the client's source address (e.g.,67.113.234.13), internal address (e.g., 192.168.1.100) and a query(e.g., “What IP telephones are on my network?”). Message processor 42parses the query message to extract the source address, internal addressand the query, and then processes the query to retrieve the requestedinformation from directory table 54 c. In particular, message processor42 searches directory table 54 c to identify any registered IPtelephones having a source address or equivalent source address thatmatches the source address of client 12. In this example, messageprocessor 42 determines that IP telephone “A1's Phone” has a sourceaddress (67.113.234.14) that is an equivalent source address to thesource address of client 12. Message processor 42 then formulates areply message that includes the identified IP telephone name andcorresponding internal address, and transmitter 38 transmits the replymessage to client 12.

Referring now to FIG. 7, an alternative exemplary system in accordancewith this invention is described. System 10 b includes the same elementsas system 10 a, but also includes client 16 coupled to second network 22via modem 18, and client 58 and printers 60 and 62 coupled to fourthnetwork 66. Clients 16 and 58 each may be a personal computer, desktopcomputer, laptop computer, handheld computer, personal digitalassistant, cellular telephone, workstation, or other similar device, andeach may have a name assigned for identification purposes. For example,client 16 may be named “Hillary,” and client 58 may be named “Joe.”Printers 60 and 62 each may be an inkjet printer, laser printer, wideformat printer, dot matrix printer, facsimile machine, copy machine, orother similar print device, and each may have a name assigned foridentification purposes. For example, printer 60 may be named “Linus,”and printer 62 may be named “Lucy.”

Fourth network 66 is coupled to second network 22 via router 64. Fourthnetwork 66 may be any conventional computer network, such as a localarea network, wide area network, wireless network, cellular network,satellite network or similar computer network. Fourth network 66 mayinclude multiple interconnected networks as is known in the art. Modem18 may be a dial-up modem, DSL modem, cable mode, or other similar modemdevice, and may have a public IP address on second network 22. Forexample, modem 18 may be assigned public IP address 82.24.117.8. Routers26 and 64 each may be assigned one or more public IP addresses on secondnetwork 22. For example, route 26 may be assigned public IP addresses67.113.234.12-6.113.234.16, and router 64 may be assigned public IPaddresses 117.33.2.45, 4.3.116.157 and 17.1.100.65.

First network 14 and fourth network 66 may be two separate networks.Nevertheless, it may be desirable for network devices on each network toaccess information about network devices on both networks. For example,first network 14 and fourth network 66 may be networks that are operatedby the same company, or may be operated by separate companies thatnevertheless desire to allow shared access to information about networkdevices on both networks. Similarly, it may be desirable for client 16to have access to information about network devices on fourth network66. For example, client 16 may be a traveling user who requiresinformation regarding network devices on second network 66. Inaccordance with this invention an administrator of directory server 20may cross-map the public addresses of client 16, first network 14 andfourth network 66 for purposes of query processing. An exemplarycross-map table is illustrated in FIG. 8. Cross-map table 56 b indicatesthat source address 67.113.234.12 has equivalent source addresses67.113.234.13-67.113.234.16, 117.33.2.45, 4.3.116.157, and 17.1.100.65,and that source address 82.24.117.8. has equivalent source addresses117.33.2.45, 4.3.116.157, and 17.1.100.65.

If cross-map table 56 b is used in conjunction with directory table 54 cof FIG. 6, message processor 42 may be used to process query messagesregarding network devices listed in directory table 54 c. For example,client 12 (“Bill”) may send a query message to directory server 20 thatincludes the client's source address (e.g., 67.113.234.13), internaladdress (e.g., 192.168.1.100) and a query (e.g., “What printers are onmy network?”). Message processor 42 parses the query message to extractthe source address, internal address and the query, and then processesthe query to retrieve the requested information from directory table 54c. In particular, message processor 42 searches directory table 54 c toidentify any registered printers having a source address or equivalentsource address that matches the source address of client 12. In thisexample, message processor 42 determines that printers “Snoopy,” “Linus”and “Lucy” have source addresses that are equivalent source addresses tothe source address of client 12. Message processor 42 then formulates areply message that includes the identified printer names andcorresponding internal addresses, and transmitter 38 transmits the replymessage to client 12.

Similarly, client 16 (“Hillary”) may send a query message to directoryserver 20 that includes the client's source address (e.g., 82.24.117.8)and a query (e.g., “What printers are on my network?”). Messageprocessor 42 parses the query message to extract the source address andthe query, and then processes the query to retrieve the requestedinformation from directory table 54 c. In particular, message processor42 searches directory table 54 c to identify any registered printershaving a source address or equivalent source address that matches thesource address of client 16. In this example, message processor 42determines that printers “Linus” and “Lucy” have source addresses thatare equivalent source addresses to the source address of client 16.Message processor 42 then formulates a reply message that includes theidentified printer names and corresponding internal addresses, andtransmitter 38 transmits the reply message to client 16.

Referring now to FIG. 9, another alternative exemplary directory tablefor use with systems in accordance with this invention is described.Directory table 54 d includes one or more entries, with each entryincluding identifying information regarding a network device that hastransmitted an identification message to directory server 20. Theidentifying information includes access rights and characteristicinformation about each network device. The access rights andcharacteristic information may be included in identifying messagesprovided by each network device, or may be assigned by the administratorof directory server 20.

For example, directory table 54 d indicates that “Snoopy” is ahigh-speed black-and-white printer that requires password authenticationfrom other network devices; “Hillary” is a desktop computer that hasaccess to information about all network printers, but no access toinformation about network IP phones; “Joe” is a personal digitalassistant (“PDA”) that has access to information about black-and-whitenetwork printers, but no access to information about network IP phones;“Linus” is a low-speed black-and-white printer that has no accessrestrictions; “Lucy' is a color printer that is available only topreferred network devices; “Bill” is a wireless laptop that has accessto information about low-speed black-and-white network printers andnetwork IP phones; and “A1's Phone” is a secure IP phone that has accessto information about color network printers and network IP phones.Persons of ordinary skill in the art will understand that otherinformation about each network device may be included in directory table54 d.

Referring again to FIGS. 2, and 7-9, message processor 42 may be used toprocess query messages regarding network devices listed in directorytable 54 d. For example, in response to receiving the query “Whatprinters are on my network?” from client 12 (“Bill”), message processor42 processes the query to retrieve the requested information fromdirectory table 54 d. In particular, message processor 42 retrieves anyprinter access rights associated with client 12 from directory table 54d (i.e., only low speed black-and white printers), and then searches thedirectory table to identify any registered printers that are within theaccess rights of client 12, and that have a source address or equivalentsource address that matches the source address of client 12(67.113.234.13). In this example, using cross-map table 56 b, messageprocessor 42 determines that “Linus” is a low-speed black-and-whiteprinter that has a source address (4.3.116.57) that is an equivalentsource address to the source address of client 12. Message processor 42then formulates a reply message that includes the identified printername and corresponding internal address, and transmitter 38 transmitsthe reply message to client 12.

Similarly, in response to receiving the query “What printers are on mynetwork?” from client 58 (“Joe”), message processor 42 processes thequery to retrieve the requested information from directory table 54 d.In particular, message processor 42 retrieves any printer access rightsassociated with client 58 from directory table 54 d (i.e., allblack-and-white printers), and then searches the directory table toidentify any registered printers that are within the access rights ofclient 58, and that have a source address or equivalent source addressthat matches the source address of client 58 (117.33.2.45). In thisexample, using cross-map table 56 b, message processor 42 determinesthat “Snoopy” and “Linus” are black-and-white printers that have sourceaddresses that are equivalent to the source address of client 58.However, Snoopy requires password access. Message processor 42 thenprompts client 58 for an access password. If client 58 provides acorrect password, message processor 42 formulates a reply message thatincludes the identified printer names and corresponding internaladdresses of printers Snoopy and Linus, and transmitter 38 transmits thereply message to client 58. If client 58 fails to provide the correctpassword, message processor 42 may provide an error message, and thenformulate a reply message that includes only the name and correspondinginternal address of printer Linus, and transmitter 38 transmits thereply message to client 58.

Referring now to FIG. 10, another alternative exemplary system inaccordance with this invention is described. System 10 c includes IPtelephones 68 (“Bob”) and 70 (“Carol”) coupled to fifth network 74, IPtelephone 76 (“Ted”) and client 58 (“Joe”) coupled to fourth network 66,IP telephones 78 (“Alice”), 80 (“Fed”) and 82 (“Ethel”) coupled to sixthnetwork 86. IP telephone 76 may be coupled to network 66 via a wiredconnection. Fifth and sixth networks 74 and 86 may be wireless networks,such as IEEE 802.11™ wireless local area networks, or other similarwireless networks. Fifth and sixth networks 74 and 86 may be the sametype of wireless network, or may be two different types of wirelessnetwork, and each may include multiple interconnected networks as isknown in the art. IP telephones 68 and 70 may be IP telephones thatinclude wireless network circuitry for connecting to wireless network74, and IP telephones 78, 80 and 82 may be IP telephones that includewireless network circuitry for connecting to wireless network 86. Fifthand sixth networks 74 and 86 may be coupled to second network 22 viawireless routers 72 and 84, respectively.

Referring now to FIG. 11, an exemplary directory table for use withsystem 10 c is described. Directory table 54 e includes one or moreentries, with each entry including identifying information regarding anetwork device that has transmitted an identification message todirectory server 20. In addition, directory table 54 d includesinformation regarding a location of each network device. In particular,an administrator of directory server 20 may assign location informationto each source address in directory table 54 d. For example, sourceaddresses 75.8.92.1, and 117.33.2.45 may indicate network deviceslocated in “Building A,” and source address 19.4.79.65 may indicatenetwork devices located in “Building B.” The administrator may alsoassign additional location information based on a device's internal IPaddress. For example, internal address 192.168.1.102 may indicate adevice located on a second floor; internal address 192.168.1.103 mayindicate a device located on a third floor; internal address208.210.1.63 may indicate a device located in “Conference Room D;” andinternal address 208.210.1.47 may indicate a device located in “Cubicle1A238.” Persons of ordinary skill in the art will understand that otherinformation about each network device may be included in directory table54 d.

Referring again to FIGS. 2 and 10-11, message processor 42 may be usedto process query messages regarding network devices listed in directorytable 54 e. For example, in response to receiving the query “What IPPhones are located on my network?” from IP Phone 68 (“Bob”), messageprocessor 42 processes the query to retrieve the requested informationfrom directory table 54 e. In particular, message processor 42 searchesthe directory table to identify any registered IP Phones that have asource address or equivalent source address that matches the sourceaddress of IP Phone 68 (75.8.92.1). In this example, message processor42 determines that IP Phone 70 “Carol” is an IP Phone that has a sourceaddress that has a matching source address. Message processor 42 thenformulates a reply message that includes the identified IP Phone nameand corresponding internal address, and transmitter 38 transmits thereply message to IP Phone 68.

After receiving a list of phones on the same network, IP Phone 68 maythen send a message to directory server 16 that includes the query“Where is Carol?” Message processor 42 processes the query to retrievethe requested information from directory table 54 e. In particular,message processor 42 searches the directory table to identify locationinformation associated with Carol's source address and/or internaladdress. In this example, message processor 42 determines that Carol islocated on the third floor of Building A. Message processor 42 thenformulates a reply message that includes Carol's identified address, andtransmitter 38 transmits the reply message to IP Phone 68.

Referring now to FIG. 12, another alternative exemplary system inaccordance with this invention is described. System 10 d includes pagers90 (“George”), 92 (“Melissa”), 94 (“Henry”) and 96 (“Arthur”) coupled toseventh network 98, and printers 102 (“Matt”), 104 (“Mark”), 106(“Luke”) and 108 (“John”) coupled to eighth network 110. Seventh network98 may be a wireless pager network, or other similar wireless networks.Eighth network 110 may be any conventional computer network, such as alocal area network, wide area network, wireless network, cellularnetwork, satellite network or similar computer network. Seventh andeighth networks 98 and 110 each may include multiple interconnectednetworks as is known in the art. Seventh and eighth networks 98 and 110may be commonly operated, or may be separately operated. For example,seventh network 98 may be operated by a printer repair company thatprovides service technicians at multiple locations, with each technicianhaving a pager for receiving support calls. Eighth network 110 may beoperated by a commercial printshop that has printers at multiplelocations, with each printer occasionally requiring technical support.Seventh and eighth networks 98 and 110 may be coupled to second network22 via wireless routers 100 and 112, respectively. Routers 100 and 112may have public addresses 2.67.13.120 and 45.39.1.200 on second network24, respectively.

Referring now to FIG. 13, an exemplary directory table for use withsystem 10 d is described. Directory table 54 f includes one or moreentries, with each entry including identifying information regarding anetwork device that has transmitted an identification message todirectory server 20. In particular, directory table 54 d includes sourceaddress, device name, device type, and internal address or pager number.In this particular, example, pagers 92, 94, 96 and 98 have the samesource address (2.67.13.120), and printers 102, 104, 106 and 108 havethe same source address (45.39.1.200). Persons of ordinary skill in theart will understand that in other embodiments of this invention, one ormore of pagers 92, 94, 96 and 98 may have a unique source address, andone or more of printers 102, 104, 106 and 108 may have a unique sourceaddress.

In addition, directory table 54 f includes information regarding alocation of each network device and support status or restrictions. Forexample, pager “George” is located in San Francisco, and providessupport to any customer; pager “Melissa” is located in San Francisco,and provides support only to “premier” customers; pager “Henry” is apager located in New York, and provides support to any customer; pager“Arthur” is located in the United States, and provide support onlypriority fee support; printer “Matt” is located in New York, but has nosupport; printer “Mark” is located in Dallas, and pays for support on aper-use basis; printer “Luke” is located in San Francisco, and isentitled to premier support; and printer “John” is located in SanFrancisco, and is entitled to “regular” support.

Referring again to FIG. 12, it may be desirable for printers 102-108coupled to eighth network 110 to obtain technical support from servicetechnicians using pagers 92-96 coupled to seventh network 98. Thus, anadministrator of directory server 20 cross-map the source addresses ofseventh network 98 and eighth network 110 so that network devices oneach network may access information about network devices on bothnetworks.

Indeed, referring again to FIGS. 2-3 and 12-13, message processor 42 maybe used to process query messages regarding network devices listed indirectory table 54 f. For example, in response to receiving the query“Help! I need support!” from printer 106 (“Luke”), message processor 42processes the query to retrieve support information from directory table54 f. In particular, message processor 42 searches the directory tableto identify any registered pagers that have a source address orequivalent source address that matches the source address of printer106. In this example, message processor 42 determines that pagers 92-96each have matching source addresses. Message processor 42 may thenformulate a reply message that includes the identified pager name andpager number, and transmitter 38 transmits the reply message to IP Phone68.

Alternatively, message processor 42 may be configured to further matchsupport requests from printers 102-108 based on location. For example,message processor 42 may retrieve printer John's location informationfrom directory table 54 f, and then try to find a pager having ageographically close location. In this example, message processor 42 maydetermine that pagers George and Melissa are both located in SanFrancisco. Message processor 42 may then formulate a reply message thatincludes the identified pager names and pager numbers, and transmitter38 transmits the reply message to printer John.

Still alternatively, message processor 42 may be configured to furthermatch and/or support status or support requests from printers 102-108based on support restrictions and support status. For example, messageprocessor 42 may retrieve printer John's support status information fromdirectory table 54 f, and then try to find a pager having a compatiblesupport restriction. In this example, message processor 42 determinesthat John is entitled to premier support, and determines that pagerMelissa provides support for premier customers. Message processor 42 maythen formulate a reply message that includes the identified pager nameand pager number, and transmitter 38 transmits the reply message toprinter John.

The foregoing merely illustrates the principles of this invention, andvarious modifications can be made by persons of ordinary skill in theart without departing from the scope and spirit of this invention.

1. A system for controlling access to a printing environment comprising:a directory server coupled to a first network via a first router,wherein said first router enforces a first firewall, the directoryserver comprising: a memory; and a message processor configured toregister identification information in a directory table in the memory;at least one client device coupled to a second network comprising a widearea network (WAN); and at least one printing device coupled to a thirdnetwork comprising a local area network (LAN) via an additional router,wherein said additional router enforces at least one additionalfirewall, wherein the LAN is configured inside at least one additionalfirewall, wherein the directory server is configured outside the atleast one additional firewall, wherein said at least one printing deviceis configured to print at least one file from said at least one clientdevice only after receiving necessary configuration information, andwherein said LAN and said WAN network operate using non-homogeneouscommunication protocol; wherein the directory server message processoris configured for registering identification information that at leastpartially comprises availability information and configurationinformation; wherein said at least one client device is configured tosend a discrete request to the directory server, said discrete requestcomprising an availability inquiry about the printing-availability ofsaid at least one printing device; and wherein the directory servermessage processor is configured for processing the discrete request andissuing a discrete reply message to the at least one client device,wherein the discrete reply message comprises configuration informationfor the at least one client device to configure the at least one printerto print files from the at least one client device.
 2. The system ofclaim 1, wherein the at least one printing device is selected from amongan inkjet printer, a laser printer, a wide format printer, and a dotmatrix printer.
 3. The system of claim 1, wherein the at least oneclient device comprises one of a computer, personal digital assistant,pager, cellular telephone, mobile device, handheld messaging device,facsimile machine, copier, printer, telephone, security camera,household appliance, vending machine, kiosk, and digital camera.
 4. Amethod for controlling access to a printing environment comprising:providing a directory server coupled to a first network via a firstrouter, wherein said first router enforces a first firewall, thedirectory server comprising: a memory; and a message processorconfigured to register identification information in a directory tablein the memory; providing at least one client device coupled to a secondnetwork comprising a wide area network (WAN); and providing at least oneprinting device coupled to a third network comprising a local areanetwork (LAN) via an additional router, wherein said additional routerenforces at least one additional firewall, wherein the LAN is configuredinside at least one additional firewall, wherein the directory server isconfigured outside the at least one additional firewall, wherein said atleast one printing device is configured to print at least one file fromsaid at least one client device only after receiving necessaryconfiguration information, and wherein said LAN and said WAN networkoperate using non-homogeneous communication protocol; wherein thedirectory server message processor is configured for registeringidentification information that at least partially comprisesavailability information and configuration information; wherein said atleast one client device is configured to send a discrete request to thedirectory server, said discrete request comprising an availabilityinquiry about the printing-availability of said at least one printingdevice; and wherein the directory server message processor is configuredfor processing the discrete request and issuing a discrete reply messageto the at least one client device, wherein the discrete reply messagecomprises configuration information for the at least one client deviceto configure the at least one printer to print files from the at leastone client device.
 5. The system of claim 4, wherein the at least oneprinting device is selected from among an inkjet printer, a laserprinter, a wide format printer, and a dot matrix printer.
 6. The systemof claim 4, wherein the at least one client device comprises one of acomputer, personal digital assistant, pager, cellular telephone, mobiledevice, handheld messaging device, facsimile machine, copier, printer,telephone, security camera, household appliance, vending machine, kiosk,and digital camera.
 7. A system for controlling access to a printingenvironment comprising: a directory server coupled to a first networkvia a first router, wherein said first router enforces a first firewall,the directory server comprising: a memory; and a message processorconfigured to register identification information in a directory tablein the memory; at least one client device coupled to a second network;and at least one printing device coupled to a third network via anadditional router, wherein said additional router enforces at least oneadditional firewall, wherein the third network is configured inside atleast one additional firewall, wherein the directory server isconfigured outside the at least one additional firewall, wherein said atleast one printing device is configured to print at least one file fromsaid at least one client device only after receiving necessaryconfiguration information, and wherein said third network and saidsecond network operate using non-homogeneous communication protocol;wherein the directory server message processor is configured forregistering identification information that at least partially comprisesavailability information and configuration information; wherein said atleast one client device is configured to send a discrete request to thedirectory server, said discrete request comprising an availabilityinquiry about the printing-availability of said at least one printingdevice; and wherein the directory server message processor is configuredfor processing the discrete request and issuing a discrete reply messageto the at least one client device, wherein the discrete reply messagecomprises configuration information for the at least one client deviceto configure the at least one printer to print files from the at leastone client device.
 8. The system of claim 7, wherein the at least oneprinting device is selected from among an inkjet printer, a laserprinter, a wide format printer, and a dot matrix printer.
 9. The systemof claim 7, wherein the at least one client device comprises one of acomputer, personal digital assistant, pager, cellular telephone, mobiledevice, handheld messaging device, facsimile machine, copier, printer,telephone, security camera, household appliance, vending machine, kiosk,and digital camera.